namespace Digitalmes.Domain.Entities.Mes.Andons;

/// <summary>
/// 安灯警报记录，记录所有的安灯报警事件的关键信息。
/// </summary>
[SugarTable("andon_alert")]
public sealed class AndonAlert : EntityBase
{
    /// <summary>
    /// 报警触发时间
    /// </summary>
    public DateTime TriggerTime { get; set; }

    /// <summary>
    /// 报警解决时间
    /// </summary>
    public DateTime? ResolveTime { get; set; }

    /// <summary>
    /// 报警状态(待处理/处理中/已解决)。
    /// </summary>
    [SugarColumn(SqlParameterDbType = typeof(EnumToStringConvert))]
    public AlertStatusEnum Status { get; set; }

    /// <summary>
    /// 关联的产线 Id。
    /// </summary>
    public long LineId { get; set; }

    /// <summary>
    /// 关联的工位 Id。
    /// </summary>
    public long WorkstationId { get; set; }

    /// <summary>
    /// 关联的问题类型 Id。
    /// </summary>
    public long IssueTyepId { get; set; }

    /// <summary>
    /// 问题代码
    /// </summary>
    [NotNull]
    public string? IssueCode { get; set; }

    /// <summary>
    /// 问题名称
    /// </summary>
    [NotNull]
    public string? IssueName { get; set; }

    /// <summary>
    /// 触发行为（自动/手动）
    /// </summary>
    [SugarColumn(SqlParameterDbType = typeof(EnumToStringConvert))]
    public TriggeredModeEnum TriggeredMode { get; set; }

    /// <summary>
    /// 触发报警的用户（手动触发）
    /// </summary>
    public string? TriggeredBy { get; set; }
}
